<?php 
vendor("Spreadsheet_Excel_Writer" . DS . "Writer");
$archivo = "reporte-" . date("d-m-Y") . "-" . date("H_i") . ".xls";
$ruta_archivo = APP . "tmp" . DS . $archivo;
$workbook=new Spreadsheet_Excel_Writer($ruta_archivo);
$worksheet =& $workbook->addWorksheet();


$workbook->setCustomColor(33, 255, 255, 206); //filas amarillas
$filtros_fecha_texto = "";

$format_title =& $workbook->addFormat();
$format_title->setBold();
$format_title->setColor('black');
$format_title->setSize(14);
$format_title->setAlign('left');

$fila=0;
$worksheet->write($fila, 1, "Reporte de Sucesos generado el " . date("d/m/Y") . " a las " . date("H:i") . "hs.", $format_title);

if($filtros_fecha_texto != "") {
	$format_subtitle =& $workbook->addFormat();
	$format_subtitle->setBold();
	$format_subtitle->setColor('black');
	$format_subtitle->setSize(9);
	$format_subtitle->setAlign('left');
	$fila++;
	$fila++;
	$worksheet->write($fila, 1, $filtros_fecha_texto, $format_subtitle);
}

$format_title_identificacion_arriba =& $workbook->addFormat();
$format_title_identificacion_arriba->setBold();
$format_title_identificacion_arriba->setColor('black');
$format_title_identificacion_arriba->setPattern(1);
$format_title_identificacion_arriba->setFgColor(33);
$format_title_identificacion_arriba->setAlign('merge');
$format_title_identificacion_arriba->setBorder (1);

$format_sin_color =& $workbook->addFormat();
$format_sin_color->setColor('black');
$format_sin_color->setSize(8);
$format_sin_color->setAlign('left');
$format_sin_color->setBorder(1);
$format_sin_color->setFgColor('white'); //fondo blanco

//pinto los titulos de las etiquetas
$posiciones = false;
$fila=5;
$col = 1;
$etiquetas[] = array('Etiqueta' => array('id' => 1000, 'nombre' => 'Carga (Kg.)'));
$etiquetas[] = array('Etiqueta' => array('id' => 1001, 'nombre' => 'Desc. (Kg.)'));
$tmpEtiqueta = array('Etiqueta' => array('id' => 0, 'nombre' => 'Nro. de Suceso'));
array_unshift($etiquetas, $tmpEtiqueta);
foreach($etiquetas as $k=>$v) {

	if ($v['Etiqueta']['id'] == 17) {
		unset($etiquetas[$k]);
		continue;
	}

	if(!empty($v['Etiqueta']['nombre_reporte']))
		$label = $v['Etiqueta']['nombre_reporte'];
	else
		$label = $v['Etiqueta']['nombre'];
	$worksheet->write($fila, $col, $label, $format_title_identificacion_arriba);
	//establezco el ancho de las columnas de forma que dinamicamicamente se agranden si no entran en un minimo
	$largo = strlen($label) + 4;
	if($largo < 10)
		$largo = 10;
	$worksheet->setColumn($col, $col, $largo);
	$posiciones[$v['Etiqueta']['id']] = $col;
	$col++;
}

//pinto el cuerpo del reporte
$suceso = false;
foreach($registros as $k=>$v) {
	if ($v['Suceso']['id'] != $suceso) {	
		$suceso = $v['Suceso']['id'];
		$fila++;
		$col = 1;

		//siempre pinto en blanco, luego si corresponde lo piso con el valor correspondiente
		foreach($etiquetas as $k1=>$v1)
		{
			$worksheet->write($fila, $col, "", $format_sin_color);
			$col++;
		}
	}

	$producto = false;
	$peso = 0;
	foreach($v['Renglon'] as $k2=>$v2) {

		if ($v2['etiqueta_id'] == 17) {
			$peso = $v2['valor'];
			continue;
		}

		if($e[$v2['etiqueta_id']]['Etiqueta']['tipo_dato'] == "16") { //fecha
			$valor = $formato->formatearFecha($v2['valor']);
		}
		elseif($e[$v2['etiqueta_id']]['Etiqueta']['tipo_dato'] == "17") { //hora
			$valor = $formato->formatearHora($v2['valor']);
		}
		elseif($e[$v2['etiqueta_id']]['Etiqueta']['tipo_dato'] == "14") { //entero
			$valor = $formato->formatearNumero($v2['valor'],0);
		}
		elseif($v2['etiqueta_id'] == "16") { //formula
			if ($v2['valor'] == 'S/FORMULA') {
				$valor = '0';
			} else {
				$valor = str_replace('FORMULA ', '', $v2['valor']);
			}
		}
		else {
			$valor = $v2['valor'];
		}

		$worksheet->write($fila, $posiciones[$v2['etiqueta_id']],$valor . " " . $e[$v2['etiqueta_id']]['Etiqueta']['ayuda'], $format_sin_color);

		if ($v2['etiqueta_id'] == 20) {
			$producto = true;
		}
	}
	//pinto el numero de suceso
	$worksheet->write($fila, $posiciones[0], ($fila - 5), $format_sin_color);


	if ($producto) { //pinto carga
		$worksheet->write($fila, $posiciones[1000], $peso, $format_sin_color);
	} else { //sino pinto descarga
		$worksheet->write($fila, $posiciones[1001], $peso, $format_sin_color);
	}

}


$workbook->close();

$session->write('nombreArchivo', $archivo);
readfile($ruta_archivo);
?>